package com.example.sportmeetserver.controller;

import com.example.sportmeetserver.entity.User;
import com.example.sportmeetserver.service.UserService;
import com.example.sportmeetserver.util.Result;
import com.example.sportmeetserver.vo.UserVo;
import org.springframework.web.bind.annotation.*;

@RestController
public class LoginController {
    private final UserService userService;

    // 使用构造函数注入
    public LoginController(UserService userService) {
        this.userService = userService;
    }

    @PostMapping("/login")
    @CrossOrigin
    public Result<User> login(@RequestBody UserVo userVo) {
        // @RequestBody注解用于接收前端发送的JSON数据，并将其转换为UserData对象。
        // 在这里处理登录逻辑，userData包含前端发送过来的用户名、密码、身份信息
        System.out.println(userVo);
        // userService服务类处理用户登录
        User user = userService.findByAccountAndPassword(userVo);
        boolean userTypeValidate = userService.validateUserType(userVo);

        if (user != null) {
            // 登录成功，返回包含用户信息的JSON数据
            if (userTypeValidate) {
                System.out.println("登录成功！" + user);
                return Result.success(user);
            } else {
                return Result.error("401", "用户类型错误！");
            }
        } else {
            return Result.error("401", "用户名或密码错误！");
        }
    }
}
